#include "hash.h"

/* Esta es la tabla */
entrada *tabla[LARGO_TABLA];

/* Usamos la funcion de hash que usa el sistema
   ELF de Unix, probabiliddd de choque una en 2 elevado a 32
   Que vamos a resolver con listas ligadas */

unsigned long ElfHash ( const unsigned char *name )
{
    unsigned long   h = 0, g;

    while ( *name )
    {
        h = ( h << 4 ) + *name++;
        if ( g = h & 0xF0000000 )
            h ^= g >> 24;

        h &= ~g;
    }
    return h;
}

/* Esta es un wrapper de Elf Hash que adapta
   el hash al largo de la tabla */
unsigned long Hash ( const unsigned char *name )
{
    return ( ElfHash( name ) % LARGO_TABLA );
}


